OpenCV(三)彩色图灰度化、通道分离、单通道反差处理(灰度图)、多通道反差处理(彩色图) 您所在的位置:网站首页 opencv 三通道转单通道 OpenCV(三)彩色图灰度化、通道分离、单通道反差处理(灰度图)、多通道反差处理(彩色图)

OpenCV(三)彩色图灰度化、通道分离、单通道反差处理(灰度图)、多通道反差处理(彩色图)

2024-07-11 20:34| 来源: 网络整理| 查看: 265

目录

一、彩色图灰度化

1、主要函数cvtColor()介绍 

2、代码

3、效果

二、通道分离

1、向量介绍

2、总代码

3、效果

三、单通道(灰度图)反差处理

1、单通道向量访问

2、代码 

3、效果

四、多通道(彩色图)反差处理(彩色图的反差处理)

1、多通道向量访问

2、代码

3、效果

总代码

一、彩色图灰度化 1、主要函数cvtColor()介绍 

彩图灰度化要用到cv2.cvtColor() 颜色转换函数

cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0 );

. InputArray src:         输入图像即要进行颜色空间变换的原图像,可以是Mat类 . OutputArray dst:      输出图像即进行颜色空间变换后存储图像,也可以Mat类 . int code:                     转换的代码或标识,即在此确定将什么制式的图片转换成什么制式的图片。

(注:这里用的是COLOR_RGB2GRAY(彩图转灰度图)(用的opencv3,所以用右边的参数))  

. int dstCn = 0:            目标图像通道数,如果取值为0,则由src和code决定

2、代码 //原图转灰度图 #include #include using namespace cv; using namespace std; int main() { Mat img; img = imread("Resource/test.jpg"); //读取 if (img.empty()) { printf("could not load the picture..."); } // 将彩色图转换为灰度图,常采用以下方法: Mat gray_img; cvtColor(img, gray_img, COLOR_RGB2GRAY); //颜色转换函数 // 原图 新图 RGB转GRAY namedWindow("原图:", WINDOW_AUTOSIZE); imshow("原图:", img); namedWindow("灰度图片:", WINDOW_AUTOSIZE); imshow("灰度图片:", gray_img); waitKey(0); return 0; }

3、效果

二、通道分离 1、向量介绍

通道分离需要借助矩阵向量,向量特点是可以无限延伸,一个向量存放一组通道数据。

这里的向量可以理解为数学意义上的列向量,构造一个_cn*1的列向量,数据类型为_Tp,格式如下:  Vec

注:OpenCV中对RGB图像数据的存储顺序是BGR,而且Scalar+的顺序也是B+G+R搜索结果。

(是BGR不是RGB)

2、总代码 //通道分离 //通道分离需要用到向量(3个通道分别存入3个向量) #include #include using namespace cv; using namespace std; Mat img, Img; vector planes; //创建向量(存放各通道内元素) //图像初始化 void Image_Init() { img = imread("Resource/rgb.jpg"); //读取 if (img.empty()) { printf("could not load the picture..."); exit(0); } } //改变图像大小(便于观看) void Resize() { resize(img, Img, Size(img.cols / 2, img.rows / 2)); // 原图 新图 (宽, 高) } //通道分离 void Split() { //将原图通道分离 split(Img, planes); //分离通道(3个通道分别存入3个向量) //cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有